热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

升序|表里_SQLServer入门教程基础篇

篇首语:本文由编程笔记#小编为大家整理,主要介绍了SQLServer入门教程-基础篇相关的知识,希望对你有一定的参考价值。目录

篇首语:本文由编程笔记#小编为大家整理,主要介绍了SQL Server入门教程-基础篇相关的知识,希望对你有一定的参考价值。


目录

🎈前言

🌻SQL Server介绍

🌼SQL Server数据库简介

🌷数据库的常见分类

🌺SQL语言的分类

🙈SQL Server基础语言学习

🙉CREATE DATABASE - 创建数据库

🙊ALTER DATABASE-修改数据库

🐵DROP DATABASE - 删除数据库

🐒CREATE TABLE – 创建表

🦍INSERT – 插入数据

🦧SELECT – 查询数据

🐶DISTINCT – 去除重复值

🐕WHERE – 条件查询

🦮AND & OR – 运算符

🐕‍🦺ORDER BY – 排序

🐩Group by – 分组查询

🦏Having – 过滤条件查询

🐧UPDATE – 更新数据

🐇DELETE – 删除数据

🐿️TRUNCATE TABLE – 清除表数据

🐎DROP TABLE – 删除表

💌总结




🎈前言

🌻SQL Server介绍

🌼SQL Server数据库简介

SQL Server数据库是Microsoft开发设计的一个关系数据库智能管理系统(RDBMS),现在是全世界主流数据库之一;

SQL Server数据库具备方便使用、可伸缩性好、相关软件集成程度高等优势,能够从单一的笔记本上运行或以高倍云服务器集群为基础,或在这两者之间任何东西上运行。尽管说成“任何东西”,可是依然要考虑有关的软件和硬件配置;


🌷数据库的常见分类


  1. 关系型数据库:mysql、Oracle、DB2、SQL Server
  2. 非关系型数据库:Redis、HBase等等

🌺SQL语言的分类


  1. DQL:数据查询语言:select、from、where
  2. DCL:数据控制语言:grant、revoke
  3. DDL:数据定义语言:create、alter、drop、truncate
  4. DML:数据操作语言:insert、update、delete
  5. TCL:事务控制语言:commit、rollback

🙈SQL Server基础语言学习

🙉CREATE DATABASE - 创建数据库

--判断数据库文件是否存在,如果存在就删除 exits是判断()语句是否返回值,如果有就返回true,否则就是false
IF EXISTS(SELECT * FROM sysdatabases WHERE name='StudentDB ')
--删除数据库
DROP DATABASE StudentDB
GO
CREATE DATABASE StudentDB --创建数据库
ON PRIMARY --定义在主文件组上的文件
(
NAME=stu_date, --逻辑名称
FILENAME='C:\\sql\\StudentDB.mdf', --物理名称
SIZE=10, --初始大小为10mb
MAXSIZE=unlimited, --最大限制为无限大
FILEGROWTH=10%) --主数据文件增长幅度为10%
LOG ON --定义事务日志文件
(
NAME=stu_log, --逻辑名称
FILENAME='C:\\sql\\StudentDB.ldf', --物理名称
SIZE=1, --初始大小为1mb
MAXSIZE=5, --最大限制为5mb
FILEGROWTH=1--事务日志增长幅度为1mb`
)

🙊ALTER DATABASE-修改数据库

ALTER DATABASE database_name
ADD FILE [,…n][ TO FILEGROUP filegroup_name ] /*在文件组中增加数据文件*/
| ADD LOG FILE [,…n] /*增加日志文件*/
| REMOVE FILE logical_file_name /*删除数据文件*/
| ADD FILEGROUP filegroup_name /*增加文件组*/
| REMOVE FILEGROUP filegroup_name /*删除文件组*/
| MODIFY FILE /*更改文件属性*/
| MODIFY NAME = new_dbname /*数据库更名*/
| MODIFY FILEGROUP filegroup_name filegroup_property | NAME = new_filegroup_name
| SET [ ,...n ] [ WITH ] /*设置数据库属性*/
| COLLATE /*指定数据库排序规则*/
GO

🐵DROP DATABASE - 删除数据库

删除 StudentDB 数据库

DROP DATABASE StudentDB
GO

以上是建好数据库对数据库的操作,下面就是在数据库中添加表,对表进行操作。


🐒CREATE TABLE – 创建表

Student(学生表)的表结构:


列 名数 据 类 型长度可空默认值说 明
学号int×主键,自增为1
姓名nvarchar50×
性别nvarchar5011:男;0:女
出生时间日期型(datetime)系统默认
数学varchar50
英语varchar50
语文varchar50
班级nvarchar50

实例:

本代码演示如何创建“Student”的表和表中的结构。

该表包含8个列,列名分别是:“StuNo”、“StuName”、“StuSex”、“StuBir”、Math 、English 、Chinese 以及Classes ;

CREATE TABLE Student(
StuNo int NOT NULL identity(1,1) not null PRIMARY key ,
StuName char(8) NOT NULL ,
StuSex bit NULL DEFAULT (1) ,
StuBir datetime NULL ,
Math varchar(50),
English varchar(50),
Chinese varchar(50),
Classes nvarchar(50)
)
GO

这就是创建表的sql命令,成功后即可添加数据。


🦍INSERT – 插入数据

语法格式:

insert into 表名(字段名,...) values(值,...);

我们也可以指定所要插入数据的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);

实例:

本例演示 “Student” 表插入记录的两种方式:

1、插入新的行

insert into Student values('张三','男','1999/01/02','80','75','90','2001班')

 2、在指定的列中插入数据

INSERT INTO Student (StuName, StuSex) VALUES ('李四', '女');

 当下面的消息提示栏这出现上面这样的就是插入成功了。


 数据表里就会出现你刚才插入的数据。下面就是查询出来结果。

 温馨提示:当第一列是主键自增列的时候,不用插入,但第一列不是主键和自增列时,必须插入,否则会提示列数目不匹配的错误。


🦧SELECT – 查询数据

SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。

语法:

SELECT * FROM 表名称;

我们也可以指定所要查询数据的列:

SELECT 列名称 FROM 表名称;

温馨提示:SQL 语句不区分大小写,SELECT 等效于 select。

实例:

SQL SELECT * 实例:

SELECT * FROM Student;

 就会查询出表中所有的数据。

温馨提示:星号(*)是选取所有列的方法。

如需获取表中的其中某列的数据,请使用类似这样的 SELECT 语句:


SELECT StuNo,StuName FROM Student;

 这样查询出来的结果就是查询你指定的字段。


🐶DISTINCT – 去除重复值

如果一张表中有多行重复数据,如何去重显示呢?可以了解下 DISTINCT 。

语法:

SELECT DISTINCT 列名称 FROM 表名称;

实例:

如果要从 “StuName” 列中选取所有的值,我们需要使用 SELECT 语句:

SELECT DISTINCT StuName FROM Student;

就会发现,重名的都没显示,只显示唯一的名字。


🐕WHERE – 条件查询

WHERE 子句是从表中查询出需要特定条件的语法。

语法:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;

下面的运算符可在 WHERE 子句中使用:


操作符描述
=等于
<>不等于
>大于
<小于
>&#61;大于等于
<&#61;小于等于
BETWEEN在某个范围内(包含)
LIKE搜索某种模式(模糊查询)

  • 模糊查询运算符&#xff1a;
    • like&#xff1a;%任意多个字符、_任意单个字符&#xff0c;如果有特殊字符&#xff0c;需要使用escape转义
    • between and
    • not between and
    • in
    • not in
    • is null
    • is not null

 温馨提示&#xff1a;在某些版本的 SQL 中&#xff0c;操作符 <> 可以写为 !&#61;

实例&#xff1a;

查询Student中性别为男的学生

SELECT * FROM Student WHERE StuSex&#61;&#39;男&#39;;

查询出来的结果就都是男生。

温馨提示&#xff1a; SQL 使用单引号来环绕文本值。如果是数值&#xff0c;请不要使用引号


&#x1f9ae;AND & OR – 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。


  • 如果第一个条件和第二个条件都成立&#xff0c;则 AND 运算符显示一条记录。
  • 如果第一个条件和第二个条件中只要有一个成立&#xff0c;则 OR 运算符显示一条记录。

语法&#xff1a;

AND 运算符实例&#xff1a;

SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值;

OR 运算符实例&#xff1a;

SELECT * FROM 表名称 WHERE 列 运算符 值 OR 列 运算符 值;

实例&#xff1a;

AND 运算符实例&#xff1a;

使用 AND 来显示所有姓名为 “张三” 并且性别是 “男“  的人&#xff1a;

SELECT * FROM Student WHERE StuName&#61;&#39;张三&#39; AND StuSex&#61;&#39;男&#39;;

OR 运算符实例&#xff1a;

使用 OR 来显示所有姓名为 “张三” 并且性别是 “男“  的人&#xff1a;

SELECT * FROM Student WHERE StuName&#61;&#39;张三&#39; OR StuSex&#61;&#39;男&#39;;

结合 AND 和 OR 运算符&#xff1a;

我们也可以把 AND 和 OR 结合起来&#xff08;使用圆括号来组成复杂的表达式&#xff09;:

SELECT * FROM Student WHERE (StuName&#61;&#39;张三&#39; OR StuName&#61;&#39;李四&#39;) AND StuSex&#61;&#39;男&#39;;

&#x1f415;‍&#x1f9ba;ORDER BY – 排序

ORDER BY 语句用于根据指定的列对结果集进行排序&#xff0c;默认按照升序对记录进行排序&#xff0c;可以使用 DESC 关键字进行降序排序。

语法&#xff1a;

SELECT * FROM 表名称 ORDER BY 列1,列2 DESC;

默认排序为 ASC 升序&#xff0c;DESC 代表降序。

实例&#xff1a;

以字母顺序显示 StuName名称&#xff1a;

SELECT * FROM Student ORDER BY StuName asc|desc;

空值&#xff08;NULL&#xff09;默认排序在有值行之后。

温馨提示&#xff1a; 在第一列中有相同的值时&#xff0c;第二列是以升序排列的。如果第一列中有些值为 null 时&#xff0c;情况也是这样的。


&#x1f429;Group by – 分组查询

group by可以根据某一列进行分组查询。

语法&#xff1a;

select 【*/字段名,...】 from 【表名/查询结果集】
【where 查询条件】
group by 分组条件;

实例&#xff1a;

按照Student中的班级进行查询。

select Classes from Student group by Classes;

 


&#x1f98f;Having – 过滤条件查询

语法&#xff1a;

select 【*/字段名,...】 from 【表名/查询结果集】
【where 查询条件】
group by 分组条件
having 过滤条件;

实例&#xff1a;

根据数学成绩大于75分进行查询&#xff0c;查询出每位同学的学号&#xff0c;姓名&#xff0c;数学成绩。

select StuNo,StuName,Math from Student
group by Math,StuNo,StuName
having Math > 75;

温馨提示&#xff1a;having必须跟在group by的后面&#xff0c;不能单独使用。group by后面必须跟的是非聚合函数。


&#x1f427;UPDATE – 更新数据

UPDATE用于修改表中的数据

语法&#xff1a;

UPDATE 表名称 SET 列名称 &#61; 新值 WHERE 列名称 &#61; 某值;

实例&#xff1a;

更新某一行中的一个列&#xff1a;

更新Student表中张三的数学成绩

UPDATE Studnet SET Math&#61; &#39;80&#39; WHERE StuName&#61; &#39;张三&#39;;

出现&#xff08;一行受影响&#xff09;代表更新成功。

温馨提示&#xff1a;SET后边是要更新的内容&#xff0c;WHERE后边是条件。


&#x1f407;DELETE – 删除数据

DELETE 语句用于删除表中的行。

语法&#xff1a;

DELETE FROM 表名称 WHERE 列名称 &#61; 值;

实例&#xff1a;

删除某行&#xff1a;

删除 Student表中 StuName为 “张三” 的行&#xff1a;

DELETE FROM Studnet WHERE StuName&#61; &#39;张三&#39;;

 

 出现&#xff08;一行受影响&#xff09;代表删除成功。

删除所有行&#xff1a;

可以在不删除表的情况下删除所有的行&#xff1a;

DELETE FROM Student;

温馨提示&#xff1a;删除的时候一定要有条件&#xff0c;不然的话表里的数据就都没有了。 


&#x1f43f;️TRUNCATE TABLE – 清除表数据

TRUNCATE TABLE命令是只删除表中的所有数据&#xff0c;对表的结构不影响。

语法&#xff1a;

TRUNCATE TABLE 表名称;

实例&#xff1a;

如何删除名为 “Student” 表中的数据

TRUNCATE TABLE Student;

&#x1f40e;DROP TABLE – 删除表

最后要是不想要这张表的话&#xff0c;直接把整个表删除即可。

语法&#xff1a;

DROP TABLE 表名称;

实例&#xff1a;

删除名为 "Student" 的表。

drop table persons;



&#x1f48c;总结

以上是Sql Server的一些基本命令&#xff0c;大家掌握的怎么样呢。让我们来一起学习Sql Server数据库。


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
author-avatar
HHH_YYYY
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有